using System;
using System.Collections.Generic;
using System.Text;
using CodePlex.SpaceBlock.Tasks;
using NAnt.Core.Attributes;

namespace CodePlex.SpaceBlock.NAnt
{
    [TaskName("S3Download")]
    public class S3DownloadTask : BaseTask
    {

        [TaskAttribute("AccessKeyID")]
        [StringValidator(AllowEmpty = false)]
        public string AccessKeyID
        {
            get
            {
                return this.GetProperty(GenericS3Base.Properties.AccessKeyID);
            }

            set
            {
                this.SetProperty(GenericS3Base.Properties.AccessKeyID, value);
            }
        }

        [TaskAttribute("SecretAccessKey")]
        [StringValidator(AllowEmpty = false)]
        public string SecretAccessKey
        {
            get
            {
                return this.GetProperty(GenericS3Base.Properties.SecretAccessKey);
            }

            set
            {
                this.SetProperty(GenericS3Base.Properties.SecretAccessKey, value);
            }
        }

        [TaskAttribute("DestinationPath")]
        [StringValidator(AllowEmpty = false)]
        public string DestinationPath
        {
            get
            {
                return this.GetProperty(GenericS3Base.Properties.DestinationPath);
            }

            set
            {
                this.SetProperty(GenericS3Base.Properties.DestinationPath, value);
            }
        }

        [TaskAttribute("SourcePath")]
        [StringValidator(AllowEmpty = false)]
        public string SourcePath
        {
            get
            {
                return this.GetProperty(GenericS3Download.Properties.SourcePath);
            }

            set
            {
                this.SetProperty(GenericS3Download.Properties.SourcePath, value);
            }
        }

        protected override GenericTask NewTask()
        {
            return new GenericS3Download();
        }
    }
}
